'''
Created on Sep 28, 2009

@author: Roni
'''

from cliques.randomCliqueSearch import randomCliqueSearch
from cliques.knownDegreeSearch import knownDegreeSearch
from cliques.cliqueStarSearch import cliqueStarSearch
from cliques.cliqueSearchLowerbound import CliqueSearchLowerbound
from cliques.mdp.offlineLimitedSampling import OfflineLimitedSampling
from cliques.mdp.limitedSampling import LimitedSampling
from cliques.mdp.mdpBasedSearch import mdpBasedSearch
from cliques.rls.rls import RLS
import graphUtils.scaleFreeGenerator
import graphUtils.folderGenerator
import logging
import sys 
import cliques.dynamicRunner
from graphUtils.scenarioGenerator import ScenarioGenerator

def main():
    logging.basicConfig(level=logging.INFO  )

    generator = ScenarioGenerator("../../resources/scenarios/random/withCliques")

    logging.info(" --------- Experiment 3 -------");
    algorithm_tuple = (RLS(),RLS(tie_breaking="Degree"),\
                       randomCliqueSearch(),knownDegreeSearch(),\
                       cliqueStarSearch(),CliqueSearchLowerbound())                                                
    runner = cliques.dynamicRunner.dynamicRunner(\
        "random-withcliques-size",\
        generator,\
        folder_name = "random",\
        algorithms=algorithm_tuple,\
        nodes_range=[100],\
        edge_factors=[1,2,3],\
        k_range=[5,6,7,8,9],\
        enable_profiling=False,
        path_prefix="../..")
    runner.run()  

if __name__ == '__main__':
    main()